package com.csx.framework.springboot.sample.boot;


import org.springframework.beans.factory.FactoryBean;
import org.springframework.stereotype.Component;

/**
 * 生效时机:
 *      Bean初始化之后
 * 使用场景:
 *      用户可以扩展该类,来为要实例化的Bean做一个代理，比如为该对象所有方法做一个拦截，输出日志、
 * @author cuisongxu
 * @date 2024/2/25 周日 16:13
 */

@Component
public class J10FactoryBean implements FactoryBean<J10FactoryBean.TestFactoryBean> {


    @Override
    public TestFactoryBean getObject() throws Exception {
        System.out.println("获取时调用 --- J10FactoryBean#getObject 获取工厂Bean,该方法返回创建出的工厂Bean");
        System.out.println();
        return new J10FactoryBean.TestFactoryBean();
    }

    @Override
    public Class<?> getObjectType() {
        return J10FactoryBean.TestFactoryBean.class;
    }

    public static class TestFactoryBean {

    }
}
